package main

import (
	"fmt"
	"sync"
)

func main()  {
	num,letter := make(chan bool),make(chan bool)

	 max := sync.WaitGroup{}
	go func() {
		i := 1
		for {
			select {
			case <-num:
				fmt.Print(i)
				i++
				fmt.Print(i)
				i++
				letter <- true
			}
		}
	}()
	max.Add(1)
	go func(mux *sync.WaitGroup) {
		i := 'A'
		for {
			select {
			case <-letter:
				if i >= 'Z' {
					mux.Done()
					return
				}
				fmt.Print(string(i))
				i++
				fmt.Print(string(i))
				i++
				num <- true
		 }	
		}
	}(&max)
	num <- true
	max.Wait()
}